Plotly তে Multiple Subplots তৈরি করার জন্য faceting techniques ব্যবহার করা হয়। Faceting একটি কৌশল যা ডেটার ভিন্ন ভিন্ন ক্যাটেগরি বা গ্রুপগুলির জন্য আলাদা আলাদা প্লট তৈরি করতে সাহায্য করে। এটি বিভিন্ন ভেরিয়েবল বা ক্যাটেগরি অনুযায়ী ডেটাকে পৃথকভাবে উপস্থাপন করার একটি কার্যকরী পদ্ধতি। Plotly তে Faceting techniques ব্যবহৃত হয় facet_row, facet_col, এবং facet এর মাধ্যমে।
১. Facet Grid (Row-wise এবং Column-wise)
Plotly তে facet_row এবং facet_col ব্যবহার করে গ্রিড আকারে বিভিন্ন সাবপ্লট তৈরি করা যায়। আপনি facet_row এর মাধ্যমে সাবপ্লটগুলোকে এক্স-অ্যাক্সিসের উপর এবং facet_col এর মাধ্যমে ওয়াই-অ্যাক্সিসের উপর সাজাতে পারেন।
উদাহরণ: Faceting Row-wise এবং Column-wise
import plotly.express as px
import plotly.graph_objects as go
# উদাহরণ ডেটাসেট
df = px.data.tips()
# Row-wise Faceting
fig_row = px.scatter(df, x="total_bill", y="tip", color="sex", facet_row="time", title="Facet by Row")
fig_row.show()
# Column-wise Faceting
fig_col = px.scatter(df, x="total_bill", y="tip", color="sex", facet_col="time", title="Facet by Column")
fig_col.show()
এখানে, facet_row="time" ব্যবহার করে ডেটা গ্রুপ করা হয়েছে "time" (Lunch, Dinner) এর উপর ভিত্তি করে, এবং facet_col="time" দিয়ে একই কাজ কলাম ভিত্তিতে করা হয়েছে।
২. Multiple Subplots with make_subplots
make_subplots ফাংশন Plotly তে একাধিক সাবপ্লট তৈরি করার জন্য ব্যবহৃত হয়। এটি আপনাকে প্লটগুলিকে একটি কাস্টম আর্কিটেকচারে সাজাতে সাহায্য করে, যেমন একাধিক রো এবং কলাম।
উদাহরণ: make_subplots দিয়ে Multiple Subplots তৈরি করা
import plotly.graph_objects as go
from plotly.subplots import make_subplots
# সাবপ্লট তৈরি
fig = make_subplots(rows=1, cols=2, subplot_titles=("Plot 1", "Plot 2"))
# প্রথম প্লট
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[4, 5, 6], mode='lines', name='Line Plot 1'), row=1, col=1)
# দ্বিতীয় প্লট
fig.add_trace(go.Bar(x=[1, 2, 3], y=[10, 11, 12], name='Bar Plot 2'), row=1, col=2)
# গ্রাফ কাস্টমাইজেশন
fig.update_layout(title_text="Multiple Subplots Example", showlegend=False)
# গ্রাফ প্রদর্শন
fig.show()
এখানে, make_subplots এর মাধ্যমে দুইটি প্লট তৈরি করা হয়েছে — একটি লাইনের প্লট এবং একটি বার চার্ট, যেগুলো একই রোতে সাজানো হয়েছে।
৩. Facet Grid with plotly.express
Plotly Express এর মাধ্যমে Facet Grid খুব সহজে তৈরি করা যায়, যেখানে আপনি ডেটাকে বিভিন্ন ক্যাটেগরির ভিত্তিতে ভেঙে বিভিন্ন সাবপ্লট তৈরি করতে পারেন। facet_row এবং facet_col ব্যবহার করে আপনি একটি গ্রিডের মধ্যে সাবপ্লটগুলো উপস্থাপন করতে পারেন।
উদাহরণ: Facet Grid তৈরির জন্য Plotly Express
import plotly.express as px
# উদাহরণ ডেটাসেট
df = px.data.gapminder()
# Facet Grid তৈরির উদাহরণ
fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", facet_col="continent", title="Facet Grid by Continent")
# গ্রাফ প্রদর্শন
fig.show()
এখানে, facet_col="continent" দ্বারা প্রতি মহাদেশের জন্য আলাদা আলাদা গ্রাফ তৈরি করা হয়েছে।
৪. Faceting with plotly.graph_objects
plotly.graph_objects ব্যবহার করেও সাবপ্লট তৈরি করা সম্ভব। এখানে, সাবপ্লটগুলোকে একত্রিত করতে go.Figure এবং go.Scatter ব্যবহার করা হয় এবং একই সাথে গ্রিড সিস্টেমে তাদের আছড়ে দেওয়া হয়।
উদাহরণ: Faceting with plotly.graph_objects
import plotly.graph_objects as go
from plotly.subplots import make_subplots
# সাবপ্লট তৈরি
fig = make_subplots(rows=2, cols=2, subplot_titles=("Plot 1", "Plot 2", "Plot 3", "Plot 4"))
# ১ম প্লট
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[3, 1, 6], mode='lines', name='Plot 1'), row=1, col=1)
# ২য় প্লট
fig.add_trace(go.Bar(x=[1, 2, 3], y=[4, 5, 6], name='Plot 2'), row=1, col=2)
# ৩য় প্লট
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[7, 8, 9], mode='lines', name='Plot 3'), row=2, col=1)
# ৪র্থ প্লট
fig.add_trace(go.Bar(x=[1, 2, 3], y=[10, 11, 12], name='Plot 4'), row=2, col=2)
# গ্রাফ কাস্টমাইজেশন
fig.update_layout(title_text="Multiple Subplots with Graph Objects", showlegend=False)
# গ্রাফ প্রদর্শন
fig.show()
এখানে ৪টি সাবপ্লট তৈরি করা হয়েছে, যেগুলো দুটি রো এবং দুটি কলামে ভাগ করা হয়েছে।
সারাংশ
Plotly তে Multiple Subplots তৈরি করার জন্য Faceting techniques একটি শক্তিশালী উপায়। facet_row, facet_col, এবং make_subplots এর মাধ্যমে আপনি সহজেই ডেটা ভিজুয়ালাইজেশনকে একাধিক সাবপ্লটে ভাগ করতে পারেন। plotly.express ব্যবহার করে ফ্যাসেটিং অত্যন্ত সহজ, যেখানে আপনি ডেটা ক্যাটেগরি অনুযায়ী বিভিন্ন সাবপ্লট তৈরি করতে পারেন, এবং plotly.graph_objects এর মাধ্যমে আপনি আরও কাস্টমাইজড এবং জটিল সাবপ্লট তৈরি করতে পারেন।
Read more